Linrad home page.
Download Linrad or update Linrad.

(March 01 2023)

Videos

Here are videos showing installation, calibration and usage of Linrad There are also a couple of vidos on general radio related things.

Download Linrad here.

The latest version is Linrad-05.02 released March 01 2023.
Installer for Windows: setup-linrad-05.02.exe
Source code:
lir05-02.tbz or lir05-02.zip
Executables for Windows: wlr5-02.zip

Sourceforge.

Linrad is on Sourceforge. You can use subversion to get the latest development version from there with this command:
svn checkout https://svn.code.sf.net/p/linrad/code/trunk linrad

Install Linrad.

How to install Linrad under Windows.
How to install Linrad under Linux or PCBSD. (This link also describes how to generate linrad.exe under Linux.)

Here is an installation manual for Linrad: http://qsl.net/ve7vv/Files/Linrad_installation_Guide.pdf it is written by Roger, VE7VV.

Here is a Linrad Installation & Configuration User Guide. by Gaëtan Horlin, ON4KHG.

The output from Linrad can be sent as input to other programs as audio streams using VAC(Windows), JACK(Windows and Linux) or sndaloop(Linux.) Linrad users can buy VAC at a discount.

Short description of Linrad.

Linrad is a free multi-OS computer program. It is free for anyone for any purpose. Copyright laws are complicated and to make sure I will not change my mind and claim copyright Linrad comes with the MIT license starting with version 03-45. By granting a very permissive license to anyone who has obtained a copy of Linrad there should be no doubt that the freedom to use linrad or parts of the code for any purpose will remain for ever.

Together with hardware that can bring RF signals into digital form Linrad forms an SDR receiver. (A Software Defined Radio receiver.) There is also a transmit part inside Linrad that will form an SDR transmitter together with appropriate hardware. (The transmit side is still at an early development stage.)

Linrad was originally developed under Linux (hence the name: Linux radio.) That is history now. These are the operating systems under which Linrad can be used: 32 bit Linux (from kernel 2.2.12 and up), 64 bit Linux, Windows 98 (re-compile without libusb0), Windows 2000, 32 bit Windows XP, 64 bit Windows XP, 32 bit Windows Vista, 64 bit Windows Vista, 32 bit Windows 7, 64 bit Windows 7, 32 bit PC-BSD and Mac OS X.

Linrad can operate with any soundcard for which the operating system on the PC has drive routines. Linrad has support for the following hardware that use PC soundcards: WSE converters, Si570 (Softrock, IQ+ and others) and the Soft66 series.

Linrad can also operate with the following direct sampling receivers: SDR-14 from Rfspace, SDR-IQ from Rfspace, Perseus HF Receiver from Microtelecom s.r.l., SDR-IP from Rfspace, Excalibur (G31DDC) from Winradio. Excalibur can only be used under Windows, all other hardware work with Linrad under Linux as well as under Windows

The Linrad dsp software processes any bandwidth that the hardware can handle. Linrad has its origin in software that was developed for 144 MHz EME CW but it is quite general and should be seen more like a kit for designing a receiver that a receiver for some particular usage. To get an idea about different usages, have a look at examples of different usages of Linrad

The Linrad development page has links showing various aspects of Linrad as encountered chronologically during the development work on the Linrad receiver. Old versions can be downloaded from there. The link contains information about the difference between versions and shows how different functions are gradually added to the package. The development page contains information about the different functions as they were added and may be more complete than the more systematic presentation here.

Starting with version 02-36 Linrad also has a transmitter albeit in a very early development stage. The Linrad TX development page and the links there will show in chronological order how the development on the transmit side proceeds.

General aspects of a Linrad installation

A Linrad installation resides in a single directory, the Linrad directory. It is possible to have many linrad installations in different directories in the same computer and it is possible to run several instances of Linrad concurrently from the same or from different radio hardware.

It does not matter how you name the linrad directory, but if there is no reason for something else it may be a good idea to follow standard conventions:
Default directories for Linux and PC-BSD
Default directories for Windows

Linrad will generate a large number of parameter files like par_userint, par_ssb_wg, par_sdrip,.... They all match the general file name par_* . Linrad will also generate files that contain calibration data in case you calibrate your system. The calibration files all match the general file name dsp_* .

A convenient way to back up a Linrad installation is to use a command window and copy the entire Linrad directory:
C:\Program Files\linrad>xcopy linrad-03.14 linrad-03.14-xx /s (Windows)
...../home/current_user/linrad cp -r linrad-03.14/ linrad-03.14-xx (Linux)
The command will create a new directory and place everyting in it. You may save any number of different parameter settings or calibration data in different directories and execute Linrad from a different location depending on the circumstances.

Watzo

The source code for the waterfall zoom program watzo is here: wtz01-01.tbz (62454 bytes) Tar archive packed with bzip2 March 11 2007. Under Linux it will generate executables for Linux and Microsoft Windows.

The executable file for Windows, watzo.exe, is packed in win-wtz01-01.zip (21139 bytes.)

The watzo program allows immediate zoom into huge amounts of waterfall data. It works on power spectra that Linrad can send over the network.

Additional general information about Linrad.

Linrad can use the network to split the processing between several computers, to allow several operators listen simultaneously at different signals received by the same antenna and to send data to various other programs such as watzo.

Linrad and watzo are free software. They are free for anyone to use for any purpose.

There is a Linrad mailing list: https://groups.google.com/g/linrad This list is intended for information exchange and questions about Linrad and related issues on computer and radio hardware.

If you have questions about Linrad, have a look at Linrad Mailing List Archives.

LINRAD USER DATA BANK is a site where you can read details about Linrad installations on various hardware combinations. There are also links to other Internet sites with information relevant to Linrad and to software defined radio in general.

ARRL, the American Radio Relay League has a site Software Defined Radio where you can find many interesting articles. Among those is the series about Linrad:

Linrad: New Possibilities for the Communications Experimenter Part 1 (237422 bytes, PDF file) Discussion opens with analog versus digital RF-input techniques and attendant performance considerations. QEX Nov/Dec 2002. p 37-41.
Linrad: New Possibilities for the Communications Experimenter Part 2 (923583 bytes, PDF file) From the Analog World into the Digital: How do we get the desired signal from RF to the sound card ? QEX Jan/Feb 2003. p 41-48.
Linrad: New Possibilities for the Communications Experimenter Part 3 (396080 bytes, PDF file) Linux and the Linrad software package. QEX May/June 2003. p 36-43
Linrad: New Possibilities for the Communications Experimenter Part 4 (752789 bytes, PDF file) Examples of simple Linrad use with an amateur transceiver (IC706) yield improved noise blanking and filtering. QEX Sept/Oct 2003. p 29-37
Linrad with high performance hardware. (519802 bytes, PDF file) Together with the WSE RX converters. Linrad is a software-defined receiver that should exceed any other receiver in dynamic-range performance. QEX Jan/Feb 2004. p 20-31

If you are unfamiliar to QEX, the ARRL "Forum for Communications Experimenters." have a look at www.arrl.org/qex You may want to subscribe....


Configuring your operating system.

Microsoft Windows usually comes with a configuration that is not well suited for realtime applications like software defined radio. Many things can be changed by the user to improve the realtime properties of Microsoft Windows.

The same is to some extent valid for Linux. There may be visual effects and needless delay through pulseaudio etc.

Radio hardware

Linrad can receive a radio signal in two formats. As a real signal or as a complex (analytic) signal.

A complex signal is a pair of two signals I and Q which are obtained from two frequency mixers with a phase shift of 90 degrees between them. To use the complex format two audio channels are needed for one RF signal. It is possible to convert directly from radio frequency to I and Q. No filters are required, the anti alias filters of the soundcard will provide the selectivity before the actual A/D conversion. Using complex signals provides twice the bandwidth compared to real signals sampled at the same sampling rate. The double bandwidth is no magic - it is because two audio channels are used for a single RF signal. Direct sampling receivers such as SDR-14, SDR-IQ,Perseus,Excalibur, SDR-IP,.... send the two audio channels via USB or Ethernet. Direct conversion receivers like the WSE converters, Softrock, Soft66 and many others send I and Q as analog signals into a soundcard.

A real signal is just an ordinary audio signal such as the one that is fed to the terminals of the loudspeaker of an ordinary SSB receiver.

Look here for some examples of analog hardware in year 2001 to use with Linrad and soundcards.

The radio hardware needed for Linrad is just a linear receiver. A combination of amplifiers, frequency mixers and filters. An ordinary SSB receiver is one example of a linear receiver. A general discussion on radio receivers might shed more light (or confusion) about what is required to prepare the signal before it is converted to digital form.

Direct conversion receivers such as WSE, Softrock, Soft66 etc. should be used with a soundcard that matches the hardware reasonably well. The soundcard usually has a volume control which has to be set properly for the radio hardware in use. How to evaluate soundcards and how to find the optimum settings for SDR usage.

Simple hardware may be surprisingly good. This is an example: Experiences with a Softrock.

Linrad may use the parallel port to control external hardware. One pin is clock, one is data and the remaining pins can be used to select what device the data is for. This hardware control is intended to control frequency synthesizers, antenna rotors and any other hardware one might like to have under computer control.

Making the PC quiet. The standard PC computer radiates at VHF frequencies. This link shows some images of how I made my PC computer quiet by putting it into a box with filters on all wires that pass through the wall of the box.

Blanker performance and calibration using RX2500 With linrad00-50 some improvements are made in the noise blanker. This link shows blanker performance on a calibrated system. RX2500 users having no pulse generator can download a calibration function from here to get started with the smart blanker.

Hardware related parameters

When you start Linrad for the first time you are prompted to select screen, mouse speed, A/D and D/A devices and speeds etc.

By pressing W your will create the file dsp_uiparm and get the same settings automatically when you start Linrad the next time. In case you have got your dsp_uiparm from some other system it will work on your computer if the hardware is compatible.

One group of hardware related parameters is the soundcard setup. For input it is usually best to not use Portaudio, but in some cases it is necessary in order to get 4 channels or the full bit depth. Choosing ASIO for input means that ASIO can not be selected for output where its low latency might be important.

There are many alternatives for the loudspeaker output under Windows. Here is a list in order of performance:

1: Portaudio ASIO
2: Portaudio WDM-KS
3: Portaudio WASAPI
4: Native MME
5: Portaudio Direct Sound
Do not use Portaudio MME.

Select the best (first) alternative from the list that exists for the soundcard that you want to use for output. The difference between these drivers may be very large.

Under Linux there is ALSA, alsa-oss, 4Front OSS and legacy sound. Problems with bad drive routines occur under Linux as well as under different versions of Windows.

The input and output of the Rx side of Linrad can be set up in a very large number of ways sepending on the hardware and on user preferences. It is not practical to try to describe all of it here. Linrad itself will give a reasonable amount of information to the user during the setup phase. Install Linrad and go ahead. In case you find something that seems unclear, post a question on the Linrad mailing list. Somebody will answer and Linrad will probably be changed in a way that should reduce the risk that others have the same problem in the future.

It is pretty easy to verify the performance of a soundcard that is used for input. Drive routines may use the hardware differently. This page: SB Live! External USB evaluates many drivers under many operating systems, but only one of them gives a low noise floor on the line input. The WASAPI driver under Vista.

Parameters that depend on receive mode

There are several distinctly different modes of operation for Linrad. The routines responsible for the processing are essentially the same for all modes and the main differences are due to user selectable parameters.

The mode-dependent parameters define fft sizes and related things. Since the FFT's are used as filters they define the size of the filters used when data is decimated. The FFT window functions correspond to the coefficients used by FIR filters so better windows give greater dynamic range (suppression of spurious signals) but they do use more CPU time.

A= Weak signal CW A mode for extremely weak signals with modest QSB, primarily EME. This mode typically has a processing delay of several seconds.

B= Normal CW Like a "normal" radio. The processing delay depends mainly on the bandwidth and can be anything between 20 and 200 ms

C= Meteor scatter A mode for short bursts of very high speed CW. This mode does not have any features of its own, it can be used as a second mode for normal CW with different parameters.

D= SSB Like a "normal" radio. Automatic frequency control can not be selected.

E= FM This mode has a conventional FM detectot as well as an improved detector that uses a small FFT to allow more sensitive detection.

F= AM For AM one can use the same algorithms as in weak signal CW. That allows synchronous AM detection with the possibillity to select one particular carrier a fraction of a Hz away from other carriers as the reference.

G= QRSS CW This mode is identical to normal CW and Meteor scatter CW but it is intended to have the user selectable parameters very different in order to make QRSS CW well visible in the baseband waterfall.

H= TX TEST This mode is for measurement on transmitters. It will display spectra of peak powers (splatter and keying clicks) as well as power vs time which is helpful to understand the causes of excessive bandwidth in transmitters.

I= SOUNDCARD TEST MODE This mode might be useful when testing soundcards as well as other parts of the hardware.

J= ANALOG HARDWARE TUNE This mode is for tuning the WSE converters.

K= RADAR This mode is intended to work as a radar with the Linrad Tx. Very useful on VHF when there is aurora or meteor reflections. Presumably it can be used to look for ionospheric reflections on HF bands.

Dynamic range considerations

The dynamic range of the A/D converter is limited. It is essential for the dynamic range of the whole system to set the analog signal level and A/D board gain correctly.

The Linrad program itself is just another linear receiver (with some additions to it). For processing speed the dynamic range of the digital signal may be limited by the use of 16-bit arithmetics and it is essential to set digital signal levels correctly in case the second fft is enabled. The digital signal levels depend on fft sizes, total bandwidth and the nature of the signals you receive.

A digital receiver applies filters, resamplers and possibly frequency mixers to move the desired signal to baseband while attenuating non-desired signals adequately. In Linrad the user is responsible for setting parameters that suit the circumstances. A better filter will typically require more CPU resources and will also cause a longer time delay from antenna to loudspeaker. Linrad uses unorthodox, very efficient algorithms that utilize the FFT that is needed anyway for the waterfall graph. Contrary to many other SDR software Linrad has a focus on the waterfall graphs to make them as sensitive as possible. That implies that every data point in the input data stream contributes equally much to the waterfall (and power spectrum.) When a narrow bandwidth is selected for the first FFT the filtering and decimation to baseband will automatically be very good. Narrow bandwidths are associated with large transforms which means large buffers and a long time delay. If a short time delay is desired one has to set a large bandwidth for the FFTs (fft1 as well as fft2 if that is enabled.) With a large fft1/fft2 bandwidth the proper selection of a window function becomes critical for dynamic range performance. this link: select the appropriate fft1/fft2 window shows some examples for an fft1 bandwidth of 1 kHz.

Checking the dynamic range of your hardware

In case Linrad is used to receive large bandwidths it is essential that the analog hardware has extremely good linearity.

If one strong signal enters the computer at 5kHz while the desired signal is at 10kHz any non-linearity in the hardware that produces second order harmonics will be disastrous.

Good linearity is also required for the intelligent noise blanker that assumes noise pulses to be shaped by the filters independently of amplitude. Poor linearity also leads to incorrect calibration.

Checking the dynamic range is very easy. You need a single strong signal only. Errors show up as extra signals.

Calibration

Linrad has routines that compensate for "errors" in the analog hardware.

Linrad is working happily in an uncalibrated state but you will not be able to use the intelligent noise blanker.

Calibrating amplitude and phase of the entire filter chain used by the system provides a very flat background on top of which very small signals can be seen. The spectrum becomes extremely flat even if the analog hardware uses filters with a very irregular frequency response. Filter characteristics of the analog hardware only affect the dynamic range on a calibrated system.

In case the input signal is in complex format Linrad has routines to correct amplitude and phase for complex input signals These routines operate in the frequency domain and can absorb frequency dependent phase and amplitude errors that are introduced by differences in amplifiers and filters used between the I/Q mixers and the audio board. The only requirement (non trivial) is that amplitude and phase errors are independent of amplitude, time and temperature.

Running Linrad

Linrad uses several windows to supply the user with information and to accept commands by mouse clicks. These windows can be moved around and their size can be changed. Left mouse button on the border lines is used.

The wide graph is divided into two parts; a waterfall display and a normal power spectrum. It can show the entire frequency range or some zoomed part of it.

The high resolution graph is present only if the second fft is enabled. It shows the second fft power spectrum, always with one point per pixel

The baseband graph shows the spectrum of the signal after it has been shifted in frequency and decimated to a lower sampling speed. This graph also shows what filter is in use for the signal that is routed to the loudspeaker.

The afc graph is present only if AFC is enabled. It gives information on how successful the AFC is in following the signal.

The polarization graph is present only if two receiver channels are present. It shows the current receive polarisation which is set automatically or by hand.

The phasing window is an extension to the polarization graph by Piotr Hewelt, SP2BPD.

Using the noise blanker

The noise blanker in Linrad is quite different from conventional noise blankers. To use it to its full capability, good hardware that allows high bandwidth and good dynamic range is required and it is necessary to have the system properly calibrated.

The signal on which the blanker operates does not contain the entire spectrum that is received by the computer, those parts of the spectrum that contain strong signals are excluded. Averaged spectra are used to determine what frequencies to exclude so averaging parameters and to some extent fft sizes affect blanker performance. The exclusion of strong signals also depends on threshold levels which can be set by the operator depending on the interference situation.

The blanker itself operates in two steps, both of which have threshold levels that decide if a pulse is strong enough to be treated by the blanker.

To get the most out of the blanker a good understanding of its way of operation is required. A real life demo of the Linrad blanker shows what the noise blanker can do to make it possible to receive weak signals under really difficult circumstances. This is a sequence recorded during the leonids meteor shower 2001 with severe powerline noise and several very strong signals in the passband. The sequence is processed in different ways in order to explain the different processing steps.

The Linrad noise blanker was originally developed for Pentium MMX 200 MHz. It was necessary to use 16 bit MMX instructions because of the limited CPU speed of the time. Today (2004) the fast computers allow the use of 32 bit floating point arithmetics. Starting with Linrad-01.26 the user can avoid the limitations with the 16 bit arithmetics by selecting fft version=0 for both the backwards fft1 and for the forward fft2. Using 32 bit floating point does not improve the reception of weak signals, but it makes the setup less critical and it makes the reception of strong signals better. Look here for details A comparison between 16 bit integer and 32 bit floating point arithmetics for the Linrad noise blanker

Using the spur removal function.

Linrad can apply notch filters to remove spurs. These notch filters are applied as phase locked oscillators, sine waves that are fitted in phase and amplitude to sinewaves present in the input. Only signals that have a very narrow bandwidth can be removed this way but the process runs in the frequency domain so a very large number of notches can be present simultaneously.

The spur cancellation routines have been present in Linrad since 2002: Spur cancellation. With Linrad-02-39 (Sept 30 2007) spur cancellation is automated. Click here: Automatic spur cancellation. for examples on how to use this feature.

Second operator over network

If two operators want to receive the signals from a common antenna they may use the same radio hardware and add a second computer in which a Linrad slave will process the digital data sent to it over a network from the Linrad master.

The LINRAD NETWORK can be used for raw data or partly processed data.


To SM 5 BSZ Main Page